<?php

/**
 * Subclass for performing query and update operations on the 'ah_hospitalizacion' table.
 *
 * 
 *
 * @package lib.model
 */ 
class AhHospitalizacionPeer extends BaseAhHospitalizacionPeer
{
  public static function loadDataFromFile($eliminarRegistrosAnteriores=false)
  {
    if($eliminarRegistrosAnteriores)
      AhHospitalizacionPeer::doDeleteAll();
    $resultado = array();
    $totalRegistros=0;
    $criteria = new Criteria();
    $criteria->add(CtControlPeer::CODIGO_ARCHIVO,'AH%', Criteria::LIKE);
    $archivoControl = CtControlPeer::doSelectOne($criteria);
    $archivo = @file(sfConfig::get('sf_upload_dir')."/".$archivoControl->getCodigoArchivo().'.TXT');
    if($archivo)
    {
      foreach ($archivo as $line_num => $line)
      {
        $datos = explode(",", $line);
        $objeto = new AhHospitalizacion();
        $objeto->setFacturaNumero(trim($datos[0]));
        $objeto->setEntidadPrestadoraId(trim($datos[1]));
        $objeto->setTipoIdentificacionId(trim($datos[2]));
        $objeto->setUsUsuarioId(trim($datos[3]));
        $objeto->setViaIngresoId(trim($datos[4]));
        $objeto->setFechaIngreso(trim($datos[5]));
        $objeto->setHoraIngreso(trim($datos[6]));
        $objeto->setNumeroAutorizacion(trim($datos[7]));
        if(trim($datos[8]) == '')
          $objeto->setCausaExternaId(null);
        else
          $objeto->setCausaExternaId(trim($datos[8]));
          
        if(trim($datos[9]) == '')
          $objeto->setDiagnosticoPrincipalIngreso(null);
        else
          $objeto->setDiagnosticoPrincipalIngreso(trim($datos[9]));
        
        if(trim($datos[10]) == '')
          $objeto->setDiagnosticoPrincipalEgreso(null);
        else
          $objeto->setDiagnosticoPrincipalEgreso(trim($datos[10]));
        
        if(trim($datos[11]) == '')
          $objeto->setDiagnosticoUno(null);
        else
          $objeto->setDiagnosticoUno(trim($datos[11]));
          
        if(trim($datos[12]) == '')
          $objeto->setDiagnosticoDos(null);
        else
          $objeto->setDiagnosticoDos(trim($datos[12]));
          
        if(trim($datos[13]) == '')
          $objeto->setDiagnosticoTres(null);
        else
          $objeto->setDiagnosticoTres(trim($datos[13]));
        
        if(trim($datos[14]) == '')
          $objeto->setDiagnosticoComplicacion(null);
        else
          $objeto->setDiagnosticoComplicacion(trim($datos[14]));
        
        $objeto->setEstadoId(trim($datos[15]));
        
        if(trim($datos[16]) == '')
          $objeto->setDiagnosticoMuerte(null);
        else
          $objeto->setDiagnosticoMuerte(trim($datos[16]));
        
        $objeto->setFechaEgreso(trim($datos[17]));
        $objeto->setHoraEgreso(trim($datos[18]));

        if($objeto->save())
          $totalRegistros++;
      }
      $resultado['informacion']['AH']['registros-grabados'] = $totalRegistros;
    }
    else
      $resultado['errores']['AH'] = array('No se pudo leer el archivo '.$archivoControl->getCodigoArchivo());
    return $resultado;
  }
}
